package com.micangcaihang.micang.mvp.task.contract;


import com.micangcaihang.common.base.mvp.BaseModel;
import com.micangcaihang.common.base.mvp.BasePresenter;
import com.micangcaihang.common.base.mvp.IBaseView;
import com.micangcaihang.common.http.ApiResult;
import com.micangcaihang.micang.entity.ReBackEntity;

import java.util.List;

import io.reactivex.Observable;

/**
 * <pre>
 *     author : Fandy
 *     e-mail : fandayongfly@gmail.com
 *     time   : 2017/7/30
 *     update : 2017/7/30
 *     desc   : 风控任务详情
 *     version: 1.0
 * </pre>
 */
public interface FTaskDetailContract {
    interface View extends IBaseView {
        /**
         * 返回工单退回原因
         *
         * @param list
         */
        void returnRebackData(List<ReBackEntity> list);

        /**
         * 提交成功
         */
        void commitSuccess();
    }

    interface Model extends BaseModel {
        /**
         * 提交工单
         *
         * @param id     工单id
         * @param reback 退回工单id 没有传0
         * @return
         */
        Observable<ApiResult<Void>> commitData(String id, String reback);

        /**
         * 工单退回原因
         *
         * @param id 工单id
         * @return
         */
        Observable<ApiResult<List<ReBackEntity>>> getRebackData(String id, String type);
    }

    abstract class Presenter extends BasePresenter<View> {
        /**
         * * 提交工单
         *
         * @param id     工单id
         * @param reback 退回工单id 没有传0
         */
        public abstract void commitData(String id, String reback);

        /**
         * * 工单退回原因
         *
         * @param id 工单id
         */
        public abstract void loadRebackData(String id, String type);
    }
}
